The use of three-dimensional (3D) sensing systems and 3D imaging data is commonly used for generating 3D images of a location for use in various applications. For example, such 3D images are commonly used for generating topographical maps or for surveillance of a location, and such sensing systems typically operate by capturing elevation data associated with the location.
An example of one well-known 3D imaging system that generates 3D point cloud data is a Light Detection and Ranging (LIDAR) system. Typically, such LIDAR systems use a high-energy laser, optical detector, and timing circuitry to determine the distance to a target. In such LIDAR systems, data is generated by recording multiple range echoes from a single pulse of laser light to generate a frame (also referred to as an image frame). Each frame of LIDAR data is comprised of a collection of points in three dimensions (i.e., a 3D point cloud) which correspond to multiple range echoes within a sensor aperture. These points may be organized into so-called “voxels” which represent values on a regular grid in a 3D space. Voxels used in 3D imaging are akin to pixels used in a two-dimensional (2D) imaging device context. These frames may be processed to reconstruct a 3D image of a location where each point in the 3D point cloud has an individual (x, y, z) value representing the actual surface within the 3D scene under investigation.
As will be appreciated, LIDAR sensors collect vast amounts of data with scan rates approaching one million measurements per second. As such, these 3D sensing systems make efficient storage, data processing, and data visualization challenging given the data set sizes collected.
Therefore, a need exists for a point cloud rendering and point cloud filtering technique for real-time point cloud data collection from a variety of sensor types that delivers enhanced performance including reducing processing requirements, limiting local memory consumption and optimizing overall data visualization.